// 数据库相关操作
// 数据库连接
const {
    sequelize
} = require('../model/db');
// 导入数据验证
const { body } = require('express-validator')
const validate = require('../middleware/validate');
const { query } = require('express');
const { param } = require('../router/article');

// 创建文章
exports.createArticle = validate([
    body('article.title').notEmpty().withMessage('文章标题不能为空'),
    body('article.author').notEmpty().withMessage('文章作者不能为空'),
    body('article.content').notEmpty().withMessage('文章内容不能为空'),
    body('article.contentPreview').notEmpty().withMessage('文章预览内容不能为空')
])

//点赞文章
exports.favoriteArticle = validate([
    // 判断headers中的文章ID是否合法
])

// 取消点赞文章
exports.unfavoriteArticle = validate([
    // 判断headers中的文章ID是否合法
    // req.parmas.isValidObjectId(['params'], 'slug')
])
// 获取指定文章
exports.getArticle = validate([
    // validate.isValidObjectId(['params'], 'slug')
    // param('slug').custom(value => {
    //     if (!mongoose.isValidObjectId(value)) {
    //         // async异步：成功默认就会返回一个promise，失败需要返回失败的Promise
    //         // return Promise.reject('文章ID类型错误')

    //         // 同步: 失败
    //         throw new Error('文章ID类型错误')
    //     }
    //     // 同步：成功
    //     return true
    // })
])

exports.updateArticle = [
    // validate([
    //     validate.isValidObjectId(['params'], 'slug')
    // ]),
    // // 校验文章是否存在
    // // 修改文章作者是否是当前登录用户
    // async (req, res, next) => {
    //     const articleId = req.params.slug
    //     const article = await Article.findById(articleId)
    //     req.article = article
    //     if (!article) {
    //         return res.status(404).end()
    //     }
    //     next()
    // },
    // async (req, res, next) => {
    //     // 前者是objectId对象(打印的数据是默认通过toString转换了的)，后者是字符串
    //     if (req.user._id.toString() !== req.article.author.toString()) {
    //         return res.status(403).end()
    //     }
    //     next()
    // }
]

exports.deleteArticle = exports.updateArticle